#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
int main(int argc, char const *argv[])
{
    // fork子进程 
    pid_t pid = fork();
    // 父进程 打印
    if (pid > 0)
    {
        printf("I am parent process, my pid is %d\n", getpid());
    }
    else if(pid == 0)
    {
            // 子进程 
    // 1 准备阶段  可执行程序地址 名称 参数 环境变量
    // 2 运行阶段 execve 执行外部程序
    // 3 执行外部程序si失败的处理
        printf("I am child process, my pid is %d\n", getpid());
        char *path="/home/atguigu/workspace0724/linux_app/03_PROC/hello";
        char *args[]={"hello","zhang3",NULL};
        char *env[]={NULL};
         int ret=execve(path,args,env);
         if(ret==-1)
         {
             perror("execve failed:");
             _exit(EXIT_FAILURE);
         }
 
    }

    


    return 0;
}
